/*
 * Context
 * Author: Johan Kristins
 *	
 */

#pragma once
#ifndef CONTEXT_H_INCLUDED
#define CONTEXT_H_INCLUDED

#include "../Core/glWindow.h"
#include "../Core/MeshMgr.h"
#include "../Core/TextureMgr.h"
#include "GameLogic.h"

class GLRenderer;
//class MeshMgr;

class Context
{
public:
	static Context* GetHandle();
	bool Init();
	void Run();
	void Close();

	enum
	{
		WND_WIDTH = 800,
		WND_HEIGHT = 600, 
		FRAME_RATE = 2500, 
		MAX_PATH_LENGTH = 256
	};

	MeshMgr* m_pMeshMgr;
	TextureMgr* m_pTextureMgr;
	GameLogic* m_pGameLogic;
	GLRenderer* m_pRenderer;
	glWindow* m_pWnd;

protected:
	Context();
	Context(const Context&);
	Context& operator= (const Context&);
private:
	static Context* m_pInstance;
	int m_iLastGameTick;

};

#endif

